home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / GREEN.ZIP / Green Book ... DoD Trusted Security Networks Passworrd Management Criteria.txt
Text File  |  1997-01-24  |  61KB  |  1,455 lines

  1.  
  2.  
  3.  
  4.                                                  CSC-STD-002-85
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                    DEPARTMENT OF DEFENSE
  13.  
  14.                    PASSWORD MANAGEMENT
  15.  
  16.                          GUIDELINE
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.               Approved for public release;
  24.               distribution limited.
  25.  
  26.  
  27.  
  28.  
  29.                         12 April 1985
  30.  
  31.  
  32.  
  33.                       DEPARTMENT OF DEFENSE
  34.                      COMPUTER SECURITY CENTER
  35.                Fort George G. Meade, Maryland 20755
  36.  
  37.  
  38.  
  39.  
  40.  
  41.                                                            
  42.                                                 CSC-STD-002-85
  43.                                            Library No. S-226,994
  44.  
  45.  
  46.  
  47.  
  48.  
  49.                                   FOREWORD
  50.  
  51.  
  52. This publication, "Department of Defense Password management
  53. Guideline," is being issued by the DoD Computer Security Center
  54. (DoDCSC) under the authority of and in accordance with DoD
  55. Directive 5215.1, "Computer Security Evaluation Center." The
  56. guidelines described in this document provide a set of good
  57. practices elated to the use of password-based user authentication
  58. mechanisms in automatic data processing systems employed for
  59. processing classified and other sensitive information. Point of
  60. contact concerning this publication is the Office of Standards
  61. and Products, Attention: Chief, Computer Security Standards.
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. Robert L. Brotman                         12 April 1985          
  71. Director
  72. DoD Computer Security Center
  73.     
  74.  
  75.  
  76.                     ACKNOWLEDGMENTS
  77.  
  78.  
  79. Special recognition is extended to Sheila L. Brand, DoD Computer
  80. Security Center (DoDCSC), and Jeffrey D. Makey, formerly DoDCSC,
  81. as principal authors of this publication.
  82.  
  83. Acknowledgment is also given for the contributions of: Daniel J.
  84. Edwards, Mary E. Flaherty, Steven J. Padilla, DoDCSC, John J.
  85. Stasak III, Gregory L. Wessel and Bernard Peters, Department of
  86. Defense, Col. Roger R. Schell, formerly DoDCSC, and James P.
  87. Anderson, James P. Anderson & Co, who gave generously of their
  88. time and expertise in the formulation and review of this
  89. document.
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.                    ii
  115.  
  116.  
  117.                  CONTENTS
  118.  
  119. FOREWORD.....................................................  i
  120. ACKNOWLEDGMENTS..............................................  ii
  121. CONTENTS......................................................iii
  122. INTRODUCTION.................................................   1
  123.  
  124. 1.0 
  125. SCOPE...........................................................1
  126. 2.0 CONTROL OBJECTIVES..................................... ....2
  127. 3.0 DEFINTIONS...............................................   3
  128. 4.0  GUIDELINES..............................................   4
  129.   4.1  SSO Responsibilities..................................   4
  130.            4.1.1 Initial System Passwords...............        4
  131.            4.1.2 Initial Password Assignment...............     4
  132.            4.1.3 Password Change Authorization.............     6
  133.            4.1.4 Group IDs................................      6
  134.            4.1.5 User ID Revalidation.......................    6
  135.       4.2 User Responsibilities..............................   6
  136.            4.2.1 Security Awareness........................     6
  137.            4.2.2 Changing Passwords........................     6
  138.            4.2.3 Log into a Connected System..................  8
  139.            4.2.4 Remembering Passwords....................      8
  140.       4.3 Authentication Mechanism Functionality............    9
  141.            4.3.1 Internal Storage of Passwords .............    9
  142.            4.3.2 Entry......................................    9
  143.            4.3.3 Transmission...............................   10
  144.            4.3.4 Login Attempt Rate.........................   10
  145.            4.3.5 Auditing....................................  10
  146.       4.4  Password Protection..............................   11
  147.            4.4.1 Single Guess Probability..................    11
  148.            4.4.2 Password Distribution ......................  11
  149. APPENDIX A:  Password Generation Algorithm...................  13
  150. APPENDIX B:  Password Encryption Algorithm...................  13
  151. APPENDIX C:  Determining Password Length.....................  17
  152.  
  153.  
  154.                                    iii
  155.  
  156.  
  157. APPENDIX D:  Protection Basis for Passwords..............      23
  158. APPENDIX E:  Features for Use in Very Sensitive Applications   25
  159. APPENDIX F:  On the Probability of Guessing a Password.....    27
  160. REFERENCES..................................................   31
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.                                     iv
  198.                                                             
  199.                              INTRODUCTION
  200.  
  201.  
  202.  
  203. In August 1983, the DoD Computer Security Center published CSC-STD-001-83,
  204. Department of Defense Trusted Computer System Evaluation Criteria.  That
  205. publication defines and describes feature and assurance requirements for six
  206. hierarchical classes of enhanced security protection for computer systems that
  207. are to be used for processing classified or other sensitive information.  A
  208. major requirement common to all six classes is accountability:
  209.             "Individual accountability is the key to securing and
  210.             controlling any system that processes information on behalf
  211.             of individuals or groups of individuals.  A number of
  212.             requirements must be met in order to satisfy this objective.
  213.  
  214.             "The first requirement is for individual user identification.
  215.             Second, there is a need for authentication.  Without
  216.             authentication, user identification has no credibility.
  217.             Without a credible identity (no) security policies can be
  218.             properly invoked because there is no assurance that proper
  219.             authorizations can be made." (2)
  220.  
  221. This guideline has been developed `to assist in providing that much needed
  222. credibility of user identity by presenting a set of good practices related to
  223. the design, implementation and use of password-based user authentication
  224. mechanisms.  It is intended that features and practices described in this
  225. guideline be incorporated into DoD automatic data processing (ADP) systems
  226. used for processing classified or other sensitive information.
  227.  
  228. 1.0 SCOPE
  229.  
  230.   The security provided by a password system depends on the passwords being
  231. kept secret at all times.  Thus, a password is vulnerable to compromise
  232. whenever it is used, stored, or even known.  In a password-based
  233. authentication mechanism implemented on an ADP system, passwords are
  234. vulnerable to compromise due to five essential aspects of the password system:
  235.     1) a password must be initially assigned to a user when enrolled on
  236. the ADP system; 
  237.     2) a user's password must be changed periodically; 
  238.     3) the ADP system must maintain a "password database"; 
  239.     4) users must remember their passwords; and 
  240.     5) users must enter their passwords into the ADP system' at
  241. authentication time.  
  242.  
  243. This guideline prescribes steps to be taken to minimize
  244. the vulnerability of passwords in each of these circumstances.
  245.  
  246.  
  247.   Specific areas addressed in this guideline include the responsibilities of
  248. the system security officer and of users, the functionality of the
  249. authentication mechanism, and password generation.  The major features
  250. advocated in this guideline are:
  251.  
  252.       * Users should be able to change their own passwords.
  253.  
  254.       * Passwords should be machine-generated rather than
  255. user-created.
  256.  
  257.     *   Certain audit reports (e.g., date and time of last login)
  258. should be
  259.         provided by the system directly to the user.
  260.  
  261.     For certain sensitive applications such as Command and Control Systems,
  262. pertinent DoD directives should be referenced in order to assess the need for
  263. additional identification and authentication features.
  264.  
  265. 2.0 CONTROL OBJECTIVES
  266.  
  267.   The CSC-STD-001-83 gives the following as the Accountability
  268. Control Objective:
  269.  
  270.         "Systems that are used to process or handle classified or
  271.     other sensitive information must assure individual
  272.     accountability whenever either a mandatory or discretionary security
  273.     policy is invoked. Furthermore, to assure accountability, the
  274.     capability must exist for an authorized and competent agent to
  275.     access and evaluate accountability information by a secure means,
  276.     within a reasonable amount of time, and without undue difficulty."(2)
  277.  
  278.     In order to attain the individual accountability required, it is necessary
  279. for the ADP system to be able to uniquely identify each person who uses it.
  280. In many cases, a password scheme will be used to achieve this.  The
  281. Accountability Control Objective, applied to password systems, leads to the
  282. following control objectives for password systems.
  283.  
  284.       * Personal Identification
  285.  
  286.         Password systems used to control access to ADP systems that process or
  287. handle classified or other sensitive information must assure the capability to
  288. uniquely identify each individual user of the system.
  289.       
  290.       * Authentication
  291.  
  292.         Password systems used to control access to ADP systems that process or
  293. handle classified or other sensitive information must assure unequivocal
  294. authentication of the user's claimed identity.
  295.                                                                  
  296.  
  297.       * Password Privacy
  298.  
  299.         Password systems must assure, to the extent possible, protection of
  300. the password database consistent with protection afforded the classified or
  301. other sensitive information processed or handled by the ADP system in which
  302. the password systems operate.
  303.  
  304.       * Auditing
  305.  
  306.         Password systems used to control access to ADP systems that process or
  307. handle classified or other sensitive information must be able to assist in the
  308. detection of password compromise.
  309.  
  310. 3.0 DEFINITIONS
  311.  
  312.     * Access Port A logical or physical identifier that a computer uses to
  313. distinguish different terminal input/output data streams.
  314.  
  315.     * Expired Password - A password that must be changed by the
  316. user before login may be completed.
  317.  
  318.     * Password - A character string used to authenticate an identity.
  319. Knowledge of the password that is associated with a user ID is considered
  320. proof of authorization to use the capabilities associated with that user ID.
  321.  
  322.     * Password System - A part of an ADP system that is used to authenticate a
  323. user's identity.  Assurance of unequivocal identification is based on the
  324. user's ability to enter a private password that no one else should know.
  325.  
  326.     * System Security Officer (SSO) - The person responsible for the security
  327. of an ADP system.  The SSO is authorized to act in the "security
  328. administrator" role defined in CSC-STD-001-83.  Functions that the SSO is
  329. expected to perform include: auditing and changing security characteristics of
  330. a user.
  331.  
  332.     * Trusted Identification Forwarding - An identification method used in
  333. networks where the sending host can verify that an authorized user on its
  334. system is attempting a connection to another host.  The sending host transmits
  335. the required user authentication information to the receiving host.  The
  336. receiving host can then verify that the user is validated for access to its
  337. system.  This operation may be transparent to the user.
  338.  
  339.     * User ID - A unique symbol or character string that is used by an ADP
  340. system to uniquely identify a user.  The security provided by a password
  341. system should not rely on secrecy of the user's ID.
  342.  
  343.  
  344.                     4
  345.  
  346.  
  347. 4.0 GUIDELINES
  348.  
  349.     In the remainder of this document, guidelines for good practice are
  350. presented in bold print, while amplifications, examples, and rationale are
  351. presented in normal print.  The guidelines are given with two degrees of
  352. emphasis.  Those that are most important to the security of a password system
  353. are presented with such wording as "The SSO should ..." (the word "should" is
  354. the key), while less critical functions are presented with such wording as "It
  355. is recommended that." ("recommended" is the key).  Because it is anticipated
  356. that diverse user communities will adopt this guideline, all recommendations
  357. are presented in general rather than specific terminology, divorced from
  358. vendor-specific hardware or system software.  Where features require the
  359. setting of a specific value (e.g., password maximum lifetime), it is suggested
  360. that these be designed as parametric settings leaving the determination of
  361. exact values to local security management who understand the particular
  362. security requirements of their user environment.
  363.  
  364.     It is recommended that, whenever possible, the mechanisms discussed in
  365. this guide be automated.  Automation will result in a minimal burden on the
  366.     system administration and on the users, and thus in greater effectiveness
  367. of the mechanisms by eliminating situations where passwords might be exposed
  368. to people.
  369.  
  370.   4.1 550 Responsibilities
  371.   4.1.1 Initial System Passwords
  372.     Many ADP systems come from the vendor with a few standard user IDs
  373. (e.g., SYSTEM, TEST, MASTER, etc.) already enrolled in the system.  The System
  374. Security Officer (SSO) should change the passwords for all standard user IDs
  375. before allowing the general user population to access the system.  This can be
  376. easily assured if the standard user IDs are initially identified by the system
  377. as having "expired" passwords.  (See section 4.2.2.1 for discussion of expired
  378. passwords.)
  379.  
  380.  
  381.     4.1.2 Initial Password Assignment
  382.          The SSO is responsible for generating and assigning the initial
  383. password for each user ID.  The user must then be informed of this password.
  384. In some areas, it may be necessary to prevent exposure of the password to the
  385. SSO.  In other cases, the user can easily nullify this exposure.
  386.  
  387.     4.1.2.1 Preventing Exposure
  388.          There are methods that can be implemented to prevent exposure of
  389. a password to the SSO after it has been generated.  One technique is to print
  390. the user's password on a sealed multipart form in such a way that it is not
  391. visible on the top page of the form.  The SSO would then protect the sealed
  392. password appropriately until it could be delivered to the user.  In this case,
  393. the password is generated randomly by the ADP system and is not known by the
  394. SSO.
  395.                                                                  
  396.                     5
  397.  
  398.  
  399.  
  400.          The password should be seated so it is not visible and cannot be made
  401. visible without breaking the seal.  Delivery of the password in this manner
  402. could require several days.
  403.  
  404.          Another method of preventing exposure is to have the user present at
  405. password generation.  The SSO must initiate the procedure and the user must
  406. shield the generated password and then remove or erase it from the display.
  407. This method cannot be used when user terminals are at remote locations.
  408.  
  409.          It is recommended that a technique comparable to one of the
  410.          above be used to prevent exposing a user's initial password to
  411.          the SSO.  Whatever method is used to distribute passwords, the SSO
  412.          must receive an acknowledgment of receipt of the password within a
  413.          specified time period.
  414.  
  415.   4.1.2.2 Nullifying Exposure
  416.  
  417.          When a user's initial password must be exposed to the SSO, this
  418. exposure may be nullified by having the user immediately change the password
  419. by the normal procedure.  (Presumably, this change procedure does not expose
  420. the new password to the SSO.)
  421.  
  422.          When a user's initial password is not protected from exposure
  423.          to the SSO, the user ID should be identified by the system as
  424.          having an "expired password" which will require the user to
  425.          change the password by the usual procedure (see section
  426.          4.2.2.3) before receiving authorization to access the system.
  427.  
  428.   4.1.2.3 Classification Assignment
  429.  
  430.          Where the password must be classified, the initial classification
  431. assignment should be entered by the SSO to designate the highest security
  432. level that may be associated with each user's initial password and its
  433. successors.
  434.  
  435. 4. 13 Password Change Authorization
  436.  
  437.       Occasionally, a user will forget the password or the SSO may determine
  438. that a user s password may have been compromised.  To be able to correct these
  439. problems, it is recommended that the SSO be permitted to change the password
  440. of any user by generating a new one.  The SSO should not have to know the
  441. user's password in order to do this, but should follow the same rules for
  442. distributing the new password that apply to initial password assignment (see
  443. section 4.1.2).  Positive identification of the user by the SSO is required
  444. when a forgotten password must be replaced.
  445.  
  446.                     6
  447.  
  448.  
  449.   4. 1.4 Group IDs
  450.  
  451.         Throughout the lifetime of an ADP system, each user ID should be
  452. assigned to only one person.  In other words, no two people may ever have the
  453. same user ID at the same time, or even at different times.  It should be
  454. considered a security violation when two or more people know the password for
  455. a user ID (except in the case when the SSO is the other person and the user ID
  456. is identified by the system as having an "expired password">.  Note that there
  457. is no intention of prohibiting alternate forms of user identification (e.g.,
  458. group IDs,functional titles) for non-authentication purposes (e.g., data
  459. access control, mail).  If alternate IDs are used, they must be based on user
  460. IDs.
  461.  
  462.   4.1.5 User ID Revalidation
  463.  
  464.         The SSO should be responsible for the development of a procedure
  465. whereby prompt notification is given to the SSO when a user ID and password
  466. must be removed from the ADP system (e.g., when an employee leaves the
  467. sponsoring organization>.  In addition, all user IDs should be revalidated
  468. periodically, and information such as sponsor and means of off-line contact
  469. (e.g., phone number,mailing address) updated as necessary.  It is recommended
  470. that this revalidation be done at least once per year.
  471.  
  472. 4.2 User Responsibilities
  473.  
  474.   4.2.1 Security Awareness
  475.  
  476.         Users should understand their responsibility to keep passwords private
  477. and to report changes in their user status, suspected security violations,
  478. etc.  To assure security awareness among the user population, it is
  479. recommended that each user be required to sign a statement to acknowledge
  480. understanding these responsibilities.
  481.  
  482.   4.2.2 Changing Passwords
  483.  
  484.         The simplest way to recover from the compromise of a password is to
  485. change it.  Therefore, passwords should be changed on a periodic basis to
  486. counter the possibility of undetected password compromise.  They should be
  487. changed often enough so that there is an acceptably low probability of
  488. compromise during a password's lifetime.  To avoid needless exposure of users'
  489. passwords to the SSO, users should be able to change their passwords without
  490. intervention by the SSO.
  491.  
  492.     4.2.2.1 Password Lifetime
  493.  
  494.            The most obvious threat to the security provided by a password
  495. system is from the compromise of passwords.  The greater the length of time
  496. during which a password is used for authentication purposes,the more
  497. opportunities there are for exposing it.  In a useful password system, the
  498. probability of compromise of a password increases during its lifetime.  For a
  499. period of time, this probability could be considered
  500.  
  501.                                                                  
  502.                           7
  503.  
  504.  
  505. acceptably low while after a longer period of time, it would be considered
  506. unacceptably high.  At this latter point, use of the password should be
  507. considered suspect rather than a reliable proof of identity.  By appropriately
  508. limiting the length of time (called the password lifetime) during which a
  509. password can be used,the vulnerability of the password can remain acceptable.
  510. There should be a maximum lifetime for all passwords.  To protect against
  511. unknown threats, it is recommended that the maximum lifetime of a password be
  512. no greater than 1 year.  The presence of known threats may indicate a need for
  513. a shorter maximum lifetime.  Also, depending on the size of the password space
  514. and on how fast a penetrator can execute a login attempt, it may be necessary
  515. to change passwords even more frequently.  See Appendix C for a discussion of
  516. the relationship between password lifetime, password space and the guess rate.
  517. A password should be invalidated at the end of its maximum lifetime.  It is
  518. recommended that, at a predetermined period of time prior to the expiration of
  519. a password's lifetime, the user ID it is associated with be notified by the
  520. system as having an "expired" password.  A user who logs in with an ID having
  521. an expired password should be required to change the password for that user ID
  522. before further access to the system is permitted.  If a password is not
  523. changed before the end of its maximum lifetime, it is recommended that the
  524. user ID it is associated with be identified by the system as "locked." No
  525. login should be permitted to a locked user ID, but the SSO should be able to
  526. unlock the user ID by changing the password for that user ID, following the
  527. same rules that apply to initial password entry (see section 4.1.2).  After a
  528. password has been changed, the lifetime period for the password should be
  529. reset to the maximum value established by the system.  4.2.2.2 Change
  530. Authorization To be consistent with the Password Privacy control objective,
  531. users (other than the SSO) should be permitted to change only their own
  532. passwords.  To ensure this, it is recommended that the user enter the old
  533. password and the user ID/password combination be validated as part of the
  534. password changing procedure.  
  535.  
  536.  
  537. 4.2.2.3 Change Procedure
  538.         Changing a password in a secure manner involves several steps.  The
  539. following procedure is recommended:
  540.             The procedure should be invoked at the user's request or
  541.             when a user logs in with an expired password.  If the change is
  542.       necessary due to an expired password, the user should be so
  543.       informed.  The user should be presented with a brief summary of
  544.       the major steps in changing a password, including a caution that
  545.       the user should ensure that no one else is watching what the user
  546.       is doing.  Except
  547.             
  548.  
  549.                     8
  550.  
  551.  
  552.  
  553.              when the change procedure is part of the login procedure (e.g.,
  554.        logging in with an expired password>, the user's current password
  555.        should be entered to re-authenticate identity.  The change
  556.        procedure should display a new password for the user.  The new
  557.        password should be different from the old one and should
  558.        be generated by angenerated by any algorithm that satisfies the
  559.        specifications in Appendix A.  The user should then enter the new
  560.        password twice so the procedure can verify that the user can
  561.        consistently enter the password correctly.  The new password
  562.        should be obliterated by techniques such as overprinting or
  563.        terminal screen erasing.  If the two entered passwords are
  564.        identical to the generated password, the password data base
  565.        should be updated (i.e., the old password deleted or invalidated
  566.        andthe new password associated with the user ID) and a message to
  567.        this effect should be displayed.  Failure by the user to
  568.        correctly enter the current password or the generated password
  569.        should result in a useful error message to the user and in the
  570.        change procedure being aborted without changing the password.
  571.        When the attempt to change an expired password is not successful,
  572.        the password should be retained as expired and the user given the
  573.        option to again change the password or logout.  An audit record
  574.        should be generated that indicates whether or not the change was
  575.        successful.
  576.  
  577. 4.2.3 Login to a Connected System
  578.  
  579.       Users should be required to authenticate their identities at "login"
  580.       time by supplying their password along with their user ID.  It is
  581.       recommended that some form of trusted identification forwarding
  582.       be used between hosts when users connect to other ADP systems
  583.       through a network.  When trusted identification forwarding is not
  584.       used, a remote host should require the user's ID and password
  585.       when logging in through a network connection.  Note that user IDs
  586.       on different hosts for the same user may be different, and that
  587.       corresponding machine-generated passwords almost certainly will be
  588.       different.  Note also that a password required by a remote host is
  589.       vulnerable to compromise by the local host or intermediate hosts.
  590.  
  591. 4.2.4 Remembering Passwords
  592.  
  593.       Since users must supply their passwords to the ADP system at
  594.       authentication time, it follows that they must know what their passwords
  595.       are.  It is recommended that users memorize their passwords and
  596.       not write them on any medium.  If passwords must be written,they
  597.       should be protected in a manner that is consistent with the damage
  598.       that could be caused by their compromise.  See Appendix D for
  599.       guidance on the protection of passwords.
  600.                                                                  
  601.  
  602.                     9
  603.  
  604.  
  605.  
  606. 4.3 Authentication Mechanism Functionality
  607.  
  608.   4.3.1 Internal Storage of Passwords
  609.  
  610.         It is normally necessary for the ADP system to store internally the
  611. user ID for each authorized system user as well as some representation of the
  612. password and, when required, the clearance and authorizations that are
  613. associated with each user ID.  Without some form of access control over this
  614. information, it will be possible for unauthorized users to read an-or modify
  615. the password database.  Unauthorized reading and writing of the password
  616. database are a concern.  Reading it could result in disclosure of passwords to
  617. unauthorized users.  Being able to write it could result, for example, in user
  618. A changing user B's password so user A could log in under user B's identity.
  619. Note that it is necessary for the login process to be able to read the
  620. password database and the password changing process to be able to read and
  621. write the password database.
  622.  
  623.         Stored passwords should be protected by access controls provided by
  624. the ADP system, by password encryption, or by both.
  625.  
  626.     4.3.1.1 Use of Access Control Mechanisms
  627.  
  628.             Access control mechanisms (e.g., mandatory or discretionary
  629. controls as discussed in CSC-STD-001-83) should be used to protect the
  630. password data base from unauthorized modification and disclosure.
  631.  
  632.     4.3.1.2 Use of Encryption
  633.  
  634.             Encryption of stored passwords should be used whenever the access
  635. control mechanisms provided by the ADP system are not adequate to prevent
  636. exposure of the stored passwords.  It is recommended that password encryption
  637. be used even when other access controls are considered adequate, as this helps
  638. protect against possible exposure when access controls are bypassed (e.g.,
  639. system dumps).  When encryption is used to protect stored passwords, it is
  640. recommended that the algorithm meet the specifications in Appendix B.  It is
  641. recommended that encryption be done immediately after entry, that the memory
  642. containing the plaintext password be erased immediately after encryption, and
  643. that only the encrypted password be used in comparisons.  There is no need to
  644. be able to decrypt passwords.  Comparisons can be made by encrypting the
  645. password entered at login and comparing the encrypted form with the encrypted
  646. password stored in the password database.
  647.  
  648.   4.3.2 Entry
  649.  
  650.             Encryption of stored passwords should be used whenever the access
  651. control mechanisms provided by the ADP system are not adequate to prevent
  652. exposure of the stored passwords.  It is recommended that password encryption
  653. be used even when other access controls are considered adequate, as this helps
  654. protect against possible exposure when access controls are bypassed (e.g.,
  655. system dumps).  When encryption is used to protect stored passwords, it is
  656. recommended that the algorithm meet the specifications in Appendix B.  It is
  657. recommended that encryption be done immediately after entry, that the memory
  658. containing the plaintext password be erased immediately after encryption, and
  659. that only the encrypted password be used in comparisons.  There is no need to
  660. be able to decrypt passwords.  Comparisons can be made by encrypting the
  661. password entered at login and comparing the encrypted form with the encrypted
  662. password stored in the password database.  Passwords should be entered after
  663. providing a user ID to the system.  If the entry is correct, the system should
  664. then display the date and time of the user's last login.
  665.  
  666.         It is recommended that the system not echo passwords that users type
  667. in.  When the system cannot prevent a password from being
  668.  
  669.  
  670.  
  671.                     10
  672.  
  673.  
  674.  
  675. echoed (e.g., in a half-duplex connection), it is recommended that a random
  676. overprint mask be printed before or after the password is entered, as
  677. appropriate, to conceal the typed password.  The complete password as entered
  678. by the user should be an exact match, character for character, with the user's
  679. current password.
  680.  
  681.  
  682. 4.3.3 Transmission
  683.  
  684.       During transmission of a password from a user's terminal to the computer
  685. in which the authentication is done, passwords should be protected in a manner
  686. that is consistent with the damage that could be caused by their compromise.
  687. Since passwords are no more sensitive than the data they provide access to,
  688. there is generally no reasonto protect them, during transmission, to any
  689. greater degree (e.g.,encryption) than regular data is protected.  See Appendix
  690. D for guidanceon the protection of passwords.
  691.  
  692. 4.3.4 Login Attempt Rate
  693.  
  694.       By controlling the rate at which login attempts can be made (where each
  695. attempt constitutes a guess of a password), the number of guesses a penetrator
  696. can make during a password's lifetime is limited to a known upper bound.  To
  697. control attacks where a penetrator attempts many logins through a single
  698. access port, the password guess rate should be controlled on a per-access port
  699. basis.  That is, each access port should be individually controlled to limit
  700. the rate at which login attempts can be made at each port.  When a penetrator
  701. can easily switch among multiple access ports, it is recommended that the
  702. password guess rate also be controlled on a per-user ID basis.  It is
  703. recommended that maximum login attempt rates fall within the range of one per
  704. second to one per minute.  This range provides reasonable user-friendliness
  705. without permitting so many login attempts that an extremely large password
  706. space or an extremely short password lifetime is necessary.  See Appendix C
  707. for a discussion of the relationship between the guess rate, password
  708. lifetime, and password space.  Note that it is not intended that login be an
  709. inherently slow procedure, for there is no reason to delay a successful login.
  710. However, in the event of an unsuccessful login attempt, it is quite reasonable
  711. to use an internal timer to enforce the desired delay before permitting the
  712. next login attempt.  The user should not be able to bypass this procedure.
  713.  
  714. 4.3.5 Auditing
  715.  
  716.   4.3.5.1 Audit Trails
  717.  
  718.          The system should be able to create an audit trail of password usage
  719. and changes.  Such an audit trail should not contain actual passwords or
  720. character strings that were incorrectly given as passwords, since this could
  721. expose the password of a legitimate user who mistyped his user ID or password.
  722. Auditableevents should include: successful login, unsuccessful login
  723.                                                                  
  724.                     11
  725.  
  726.  
  727.  
  728. attempts, use of the password changing procedure, and the locking of a user ID
  729. due to its password reaching the end of its lifetime.  For each recorded
  730. event, the audit record should include: date and time of the event, type of
  731. event, offered user ID for unsuccessful logins or actual user ID for other
  732. events, and origin of the event (e.g., terminal or access port 11').  Audit
  733. records of password changes should also indicate whether or not the change was
  734. successful.
  735.  
  736.     4.3.5.2 Real-time Notification to System Personnel
  737.  
  738.    It is recommended that each accumulation of 5 consecutiveunsuccessful login
  739. attempts from a single access port or against a single user ID results in
  740. immediate notification of the event to the ADP system operator or the SSO.
  741. While there is no requirement for the SSO or operator to take any action upon
  742. receiving the notification, frequent notifications may indicate that a
  743. penetration attempt is in progress and may warrant investigation and possible
  744. corrective action.
  745.  
  746.     4.3.5.3 Notification to the User
  747.  
  748.      Upon successful login, the user should be notified of:
  749.  
  750.              *  The date and time of user's last login;
  751.  
  752.              * The location of the user (as can best be determined) at last
  753.                 login; and
  754.  
  755.              * Each unsuccessful login attempt to this user ID since the
  756.                 last successful login.
  757.  
  758.       This provides a means for the user to determine if someone else is
  759.             using or attempting to guess this user ID and
  760. password.
  761.  
  762. 4.4 Password Protection
  763.  
  764.   4.4.1 Single Guess Probability
  765.  
  766.         The probability that any single attempt at guessing a password will be
  767. successful is one of the most critical factors in a password system.  This
  768. probability depends on the size of the password space and the statistical
  769. distribution within that space of passwords that are actually used.  Since
  770. many user-created passwords are particularly easy to guess all passwords
  771. should be machine generated using an algorithm that meets the specifications
  772. in Appendix A.
  773.  
  774.   4.4.2 Password Distribution
  775.  
  776.         During distribution to the user.  passwords should be protected to the
  777. same degree as the information to which they provide access.machine-generated
  778. passwords should be displayed on the user's terminal at time of change, along
  779. with appropriate cautions to the
  780.  
  781.                     12
  782.  
  783.  
  784. user to protect the password.  At the completion of the change procedure, it
  785. is recommended that displayed passwords be erased or overstruck, as
  786. appropriate for the terminal type.  Passwords changed by the 550 should be
  787. distributed in a manner that is consistent with the damage that could be
  788. caused by their compromise.  See Appendix D for guidance on the protection of
  789. passwords.
  790.                                                                  
  791.                     13
  792.  
  793.  
  794.                                  APPENDIX A
  795.  
  796.                        Password Generation Algorithm
  797.  
  798.  
  799. This appendix describes the requirements to be met by an acceptable password
  800. generation algorithm.  The issues involved relate to the specifications for
  801. password space, random seed generation, pseudo-random number generation and
  802. "user- friendly" passwords.
  803.  
  804. A.1 Password Space
  805.  
  806.   The size of the password space is a function of the size of the alphabet and
  807. the number of characters from that alphabet that are used to create passwords.
  808. (The maximum size of the password space can be expressed as 5 A where 5 is the
  809. maximum password space, A is the alphabet size and M is the password length.)
  810.  
  811.   To determine the minimum size of the password space needed to satisfy the
  812. security requirements for an operational environment, equation [3] in Appendix
  813. C can be used.  The password generation algorithm selected should be able to
  814. generate at least that number of passwords.  In addition, the generated
  815. passwords should be, at a minimum, 6 characters in length.
  816.  
  817. A.2 Random Seeds
  818.  
  819.   When a pseudo-random number generator is used in a password generation
  820. algorithm, it should accept as input random data that would provide output
  821. which has a high degree of unpredictability.  This random data (seed) can be
  822. derived from a number of available parameters such as a system clock, system
  823. registers, date, time, etc.  The parameters should be selected to ensure that
  824. the number of unique seeds that can be generated from these inputs should be
  825. at least equal to the minimum number of passwords that must be generated.
  826. When passwords are used to protect classified information, the seed generator
  827. should be approved by the DoD Computer Security Center.
  828.  
  829. A.3 Pseudo-Random Number Generator
  830.  
  831.   Using a random seed as input, the pseudo-random number generator that drives
  832. a password generation algorithm should have the property that each bit in the
  833. pseudo-random number that it generates is a complex function of all the bits
  834. in the seed.  The Federal Data Encryption Standard (DES), as specified in FIPS
  835. 46, (9) is an example of a pseudo-random number generator with this property.
  836. If DES is used, it is suggested that the 64-bit Output Feedback (OFB) mode be
  837. used as specified in FIPS 81 (10).  In this case, the seed used as input could
  838. consist of:
  839.  
  840.       * An initialization vector
  841.       * A cryptographic key
  842.       * Plaintext
  843.                     14
  844.  
  845.  
  846.  
  847.   Factors that can be used as input to these parameters are:
  848.  
  849.     For the initialization vector:
  850.  
  851.       * System clock
  852.       * System ID
  853.       * User ID
  854.       -Date and time
  855.  
  856.     For the cryptographic key:
  857.  
  858.       * System interrupt registers
  859.       * System status registers
  860.       * System counters
  861.  
  862.     The plain text can be an external randomly generated 64-bit value (8
  863. characters input by the 550).
  864.  
  865.   The resulting pseudo-random number that is output will be the 64 bits of
  866. cipher text generated in the 64-bit OFB mode.  The password generation
  867. algorithm can either format this pseudo-random number into a password or use
  868. it as an index (or indices) into a table and use the contents from this table
  869. to form a password or a passphrase.
  870.  
  871.  
  872. A.4 "User-Friendly" Passwords
  873.  
  874.   To assist users in remembering their passwords, the password generation
  875. algorithm should generate passwords or passphrases that are "easy" to
  876. remember.  Passwords formed by randomly choosing characters are generally
  877. difficult to remember.  Passwords that are pronounceable are often easy to
  878. remember, as are passphrases that are formed by concatenating real words into
  879. a phrase or sentence.
  880.                                                                  
  881.                     15
  882.  
  883.  
  884.                                  APPENDIX B
  885.  
  886.                         Password Encryption Algorithm
  887.  
  888.  
  889. Password encryption is advocated as a password protection measure.  The
  890. algorithm selected for this would be determined by the system environment.
  891. Some environments may require that a classified encryption algorithm be used,
  892. while for other environments an unclassified algorithm would be required.
  893.  
  894. B.1 Encryption Algorithm
  895.  
  896. A conventional or public key cryptographic algorithm which is configured as a
  897. "one-way" encryption algorithm may be used for password encryption, but
  898. whatever algorithm is used, the protection the encryption algorithm provides
  899. should rely on its complexity.  If there is a key that can be used with the
  900. algorithm to decrypt passwords, that key should not be stored in the ADP
  901. system.
  902.  
  903. B.2 Assurance for Unique Encrypted Passwords
  904.  
  905. If a password encryption system depends only on the password and other fixed
  906. information, there is a possibility that two different users will have
  907. identical encrypted passwords.  A user who discovers another user with an
  908. identical encrypted password will then know that the same password will work
  909. for both user IDs even if they don't have identical plaintext passwords.  To
  910. minimize this possibility, it is recommended that the encryption algorithm use
  911. the ADP system name (in network environments) and the user's ID as factors in
  912. the encryption.  (This can be easily accomplished by concatenating the system
  913. ID, user ID and password, and then applying the encryption algorithm to the
  914. resulting string.)
  915.                     16
  916.  
  917.  
  918.  
  919.                                  APPENDIX C
  920.  
  921.                         Determining Password Length
  922.  
  923.  
  924. The security afforded by passwords is determined by the probability that a
  925. password can be guessed during its lifetime.  The smaller that probability,
  926. the greater the security provided by the password.  All else being equal, the
  927. longer the password, the greater the security it provides.  This appendix
  928. reviews the mathematics involved in establishing how long a password should
  929. be.
  930.  
  931. The basic parameters that affect the length of the password needed to provide
  932. a given degree of security are:
  933.  
  934. L = maximum lifetime that a password can be used to log into the system.
  935.  
  936. P = probability that a password can be guessed within its lifetime, assuming
  937.     continuous guesses for this period.
  938.  
  939. R = number of guesses per unit of time that it is possible to make.
  940.  
  941. S = password space, i.e., the total number of unique passwords that the
  942.     password generation algorithm can generate.
  943.  
  944.  
  945. C.1 Relationship
  946.  
  947.   Considering only the cases where S is greater than L x R and therefore P is
  948. less than 1, the relationship between these parameters is expressed by the
  949. equation:
  950.  
  951.   P = L x R                                                      
  952.              [I]
  953.  
  954.  
  955.   A detailed explanation of the derivation of this basic equation
  956. is given in Appendix F.
  957.  
  958.  
  959. C.2 Guess Rate
  960.  
  961.   Several factors contribute to the rate at which attempts can be made to gain
  962. access to the data on a system when a valid password is not known.  First and
  963. foremost is the protection given to the password data base itself.  If the
  964. password data base is unprotected (i.e., can be read by anyone as ordinary
  965. data), then "guessing" may not be required.
  966.  
  967.   If the password data base can be read.  but the passwords are encrypted (see
  968. Appendix B), a very high guess rate may be possible by using a computer to try
  969. a dictionary of possible passwords to see if ciphertext can be generated that
  970. is the same as one in the password data base.  A similar situation frequently
  971. occurs where only passwords are used to protect files.
  972.  
  973.                     16
  974.  
  975.  
  976.   Finally, if the password data base has effective access controls and the
  977. login procedure cannot be bypassed, the guess rate can be controlled by
  978. setting limits on the number of login or other attempts that can be made
  979. before terminating the connection or process.
  980.  
  981. C.3 Password Lifetime
  982.  
  983.   All other things being equal, the shorter the lifetime of a password, the
  984. fewer the number of guesses that can be made and thus the greater the degree
  985. of password security.  As stated in 4.2.2.1, the maximum password lifetime
  986. should not exceed one year.
  987.  
  988. C.4 Password Space
  989.  
  990.   Password length and alphabet size are factors in computing the maximum
  991. password space requirements.  Equation [2] expresses the relationship between
  992. S, A, and M where:
  993.  
  994.   S = password space
  995.   A = number of alphabet symbols
  996.   M = password length
  997.  
  998.   S = AM                                                         
  999.            [2]
  1000.  
  1001.   To illustrate: If passwords consisting of 4 digits using an alphabet of 10
  1002. digits (e.g., 0-9) are to be generated:
  1003.  
  1004.   S = 104
  1005.  
  1006.   That is, 10,000 unique 4-digit passwords could be generated.  Likewise, to
  1007. generate random 6-character passwords from an alphabet of 26 characters (e.g.,
  1008. AZ):
  1009.  
  1010.   S = 266
  1011.  
  1012.   That is 3.089 * 108 unique 6-character passwords could be
  1013. generated.
  1014.  
  1015.   "User-friendly" passwords (sometimes referred to as passphrases) could be
  1016. generated by using, for example, 3 symbols from an alphabet (dictionary) of
  1017. 2000 symbols, where each symbol was a pronounceable word of 4, 5, or 6
  1018. characters.
  1019.  
  1020.   Using equation [2] and setting:
  1021.  
  1022.   A = 2000 symbols (words)
  1023.   M = 3
  1024.  
  1025.   Then S = 20003
  1026.  
  1027.   That is, 8 * 109 unique passwords could be generated where each password was
  1028. made up of 3 words taken from a dictionary of 2000 words.
  1029.                                                                  
  1030.                     19
  1031.  
  1032.  
  1033. C.5 A Procedure for Determining Password Length
  1034.  
  1035.   What is important in using passwords is how long to make the password to
  1036. resist exhaustive penetration attacks.  We can do this by using the following
  1037. procedure:
  1038.  
  1039.   a.  Establish an acceptable probability, P, that a password will be guessed
  1040. during its lifetime.  For example, when used as a login authenticator, the
  1041. probability may be no more than 1 in 1,000,000.  In another case, where very
  1042. sensitive data is involved, the value for P may be set at 10-20.
  1043.  
  1044.   b.  Solve for the size of the password space, 5, with the equation derived
  1045. from equation [1]
  1046.  
  1047.   S =  G                                                         
  1048.            [3]
  1049.        P
  1050.  
  1051.   where G    L x R
  1052.  
  1053.   c. Determine the length of the password, M, from the equation
  1054.  
  1055.        M =          log S                                        
  1056.            [4]
  1057.            log (number of symbols in the "alphabet")
  1058.  
  1059.   M will generally be a real number that must be rounded up or down to the
  1060. nearest whole number.  Examples of calculating many of the values described
  1061. above are given below.
  1062.  
  1063. C.6 Worked Examples
  1064.  
  1065.   An example shown here is drawn from a real network case.  The problem is to
  1066. determine the needed password length to reduce to an acceptable level the
  1067. probability that a password will be guessed during its lifetime.
  1068.  
  1069.   The network to which this is applied supports both a 300-baud and a
  1070. 1200-baud service.  Experiments on the network have determined that it is
  1071. possible to make about 8.5 guesses per minute on the 300-baud service and 14,
  1072. guesses per minute on the 1200-baud service.  (The reason that the "guess
  1073. rate' for the 1200-baud service is not 4 times that of the 300-baud service is
  1074. that the system response time, which is not affected by the improved
  1075. transmission speed, becomes the limiting factor in how many guesses can be
  1076. accomplished in a given amount of time.)
  1077.  
  1078.   In this example, the arbitrary value of 10-6 is used for the probability (P)
  1079. of guessing the password in its lifetime.  As we will see below, the password
  1080. lifetime is not the critical factor here as long as the password is changed at
  1081. least once per year.
  1082.  
  1083.   The statement of the problem is to find a password length that will resist
  1084. being guessed with a probability of 1 in 106 in 1 year of continuous guesses.
  1085.  
  1086.   When three parameters in equation [1] are known, the fourth value can be
  1087. found.  To find the password space required by our examples, the following
  1088. parameters are given:
  1089.  
  1090.                     20
  1091.  
  1092.  
  1093.  
  1094. L is set for 6 months and 12 months.  P is set for 1 in 1,000,000 (acceptable
  1095. probability of guessing the password).  R is set at 8.5 guesses per minute
  1096. (guess rate possible with 300-baud service).
  1097.  
  1098. At 8.5 guesses per minute, the number of guesses per day would be
  1099. 12,240.
  1100.  
  1101. Substituting 183 days for 6 months then using equation [3],
  1102.  
  1103.     S = G    183x12240 -  2.23992x1012 passwords
  1104.         P      -000001
  1105.  
  1106. The 12-month value is twice that of the 6-month case.
  1107.  
  1108. With this data, and using equation [4], we can determine the length of the
  1109. passwords as a function of the size of the alphabet from which they are drawn.
  1110. We will assume two alphabet sizes: a 26-letter alphabet and a
  1111. 36-letter-and-number alphabet.
  1112.  
  1113.  
  1114. M  =  log (2.23992 x 1012) 8.72 (for 6-month lifetime)
  1115.             log 26
  1116.  
  1117. M  =  log (4.4676x1012)     8.94 (for 12-month lifetime)
  1118.             log 26
  1119.  
  1120. M  =  log (2.23992x1012)     7.93 (for 6-month lifetime)
  1121.             log 36
  1122.  
  1123. M  =  log (4.4676 x 1012) 8.13 (for 12-month lifetime)
  1124.             log 36
  1125.  
  1126. Table 1 presents the results.
  1127.  
  1128.  
  1129.                              TABLE 1
  1130.  
  1131.      MAXIMUM                   Length of Password
  1132.      LIFETIME
  1133.       (months)
  1134.                   26-Character alphabet   36-Character alphabet
  1135.  
  1136.         6                   9                       8
  1137.                   (rounded up from 8-72)  (rounded up from 7.93)
  1138.  
  1139.        12                   9                       8
  1140.                   (rounded up from 8.94)  (rounded down from 8.13)
  1141.                                                                  
  1142.         21
  1143.  
  1144.  
  1145. C.7 Passphrases
  1146.   A "passphrase" is a concatenation of words drawn from a dictionary.  The
  1147. dictionary is merely the collection of symbols making up the "alphabet" from
  1148. which the password is generated.  As an example, suppose the passphrase is
  1149. made up of words drawn from a dictionary of 4, 5 and 6 letter words.  There
  1150. are approximately 3,780 4-letter words, 7,500 5-letter words and 12,000
  1151. 6-letter words in English.  The "alphabet size" for generating passphrases is
  1152. approximately 23,300.  We can compute how many words, drawn at random from the
  1153. dictionary of 23,300 words, are needed to produce a passphrase that will be
  1154. resistant to exhaustive attack with the probability of 1 x 10-6.
  1155.  
  1156.   We have to solve for 5 as before, and from that, solve for M, the length of
  1157. the password (i.e., number of alphabet symbols or words).
  1158.  
  1159.   For L = 12 months, 5=4.4676*1012, log S = 12.6500
  1160.   For L = 6 months, 5=2.2399*1012,  log S = 12.3502
  1161.   Log 23300 4.3669
  1162.  
  1163.   Using equation (4) we obtain:
  1164.   For L = 12 months  M 12.6500   3 (rounded from 2.89)
  1165.                        4.3669
  1166.   For L = 6 months  M  12.3502   3 (rounded from 2.82)
  1167.                        4.3669
  1168.   Thus, for the passphrase algorithm described, namely selection at random
  1169. from a dictionary of 23,300 words, only 3 words are needed in a passphrase to
  1170. obtain the desired resistance to exhaustive enumeration.  In using the
  1171. algorithm, each word of the phrase is drawn independently from the dictionary.
  1172. This may result in a word appearing more than once in the passphrase.
  1173.  
  1174.                                                                  
  1175.                     23
  1176.  
  1177.  
  1178.                            APPENDIX D
  1179.                  Protection Basis for Passwords
  1180.  
  1181.  
  1182. Passwords are used to prevent people who have physical access to an ADP system
  1183. from gaining access to data belonging to another user.  Thus, a password
  1184. should be protected in a manner that is consistent with the damage that might
  1185. be caused by its exposure to someone who has the opportunity to use it (i.e.,
  1186. has physical access to the ADP system terminals).  Exposure of a password to
  1187. someone who is physically prevented from attempting to use it is not a threat.
  1188.  
  1189. D.1 Systems Containing Only Unclassified Information
  1190.  
  1191.   Although an ADP system may process only unclassified information, it still
  1192. may require that the data be protected from unauthorized use.  Although the
  1193. password is unclassified, the obligation remains that the user protect this
  1194. password so that only those with a need-to-know can access the data.
  1195.  
  1196. D.2 Systems Containing Classified Information
  1197.  
  1198.   Passwords that are used in AD P systems that operate in the dedicated or
  1199. system high security modes (3) should not be classified, but should be
  1200. protected to the same degree as For Official Use Only information.  In this
  1201. case, there is no need to classify passwords since access to the area in which
  1202. the system resides is restricted to those with a clearance as high as the
  1203. highest classification level of the information processed.  A person who
  1204. obtained a password for a system running in dedicated or system high security
  1205. mode but who did not possess the proper security clearance would be unable to
  1206. gain physical access to the system and use the password.
  1207.  
  1208.   For systems operating in the multilevel security mode (3), passwords may or
  1209. may not have to be classified.
  1210.   When the ability to access classified information is based on the physical
  1211. protection of the terminal rather than on the identity of the user (i.e., when
  1212. all terminals are single-level devices), passwords should not be classified,
  1213. but should be protected to the same degree as For Official Use Only
  1214. information.  There is no need to classify passwords that can only be used on
  1215. single-level terminals, since physical access to single-level terminals is
  1216. controlled to the level associated with the terminal.  When the ability to
  1217. access classified information is based on the user's identity and is not
  1218. restricted by the level of the terminal (i.e., multilevel terminals), each
  1219. password must be classified to the highest level of the information to which
  1220. it provides access.  When multilevel terminals are used, the system determines
  1221. the user's access authorizations to classified material based on his identity,
  1222. and authenticates the identity by requiring a password.  Thus.  the ADP system
  1223. can protect the information it processes only to the extent that passwords are
  1224. protected.  For example, a user with a Secret clearance can access Secret
  1225. information.
  1226.                     24
  1227.  
  1228.  
  1229. Compromise of that user's password could result in the compromise of Secret
  1230. information; therefore, the password would be classified Secret.  In the case
  1231. of a system with multilevel terminals, disclosure of a Top Secret user's
  1232. password to a Secret user would allow the Secret user to login as the Top
  1233. Secret user and thus gain access to Top Secret information.  Disclosure of Top
  1234. Secret information to someone with only a Secret clearance can cause
  1235. exceptionally grave damage to the national security.  Since disclosure of the
  1236. Top Secret user's password could lead to this, the password must be classified
  1237. Top Secret (5).
  1238.  
  1239. Note that classified passwords must not be used on terminals that are not
  1240. authorized for data at the level of the password (e.g., a Top Secret password
  1241. must not be used on a Secret terminal).  The presence of both single-level and
  1242. multilevel terminals on a system may indicate the need for passwords at each
  1243. security level.  At a minimum, an unclassified password should be available
  1244. for use on terminals that are only authorized for unclassified data.
  1245.                                                                  
  1246.                     25
  1247.  
  1248.  
  1249.                            APPENDIX E
  1250.  
  1251.          Features for Use in Very Sensitive Applications
  1252.  
  1253.  
  1254. The following features can be used to enhance the security provided by a
  1255. password system.  Because they are somewhat "user-unfriendly," they are
  1256. recommended for environments only when there is a high threat of password
  1257. compromise.
  1258.  
  1259. E.1 One-Time Passwords
  1260.  
  1261.   One-time passwords (i.e., those that are changed after each use) are useful
  1262. when the password is not adequately protected from compromise during login
  1263. (e.g., the communication line is suspected of being tapped).  The difficult
  1264. part of using one-time passwords is in the distribution of the new passwords.
  1265. If a one-time password is changed often because of frequent use, the
  1266. distribution of new one-time passwords becomes a significant point of
  1267. vulnerability.  There are products on the market that generate such passwords
  1268. through a cryptographic protocol between the destination host and a hand-held
  1269. device the user can carry.
  1270.  
  1271. E.2 Failed Login Attempt Limits
  1272.  
  1273.   In some instances, it may be desirable to count the number of unsuccessful
  1274. login attempts for each user ID and to base password expiration and user ID
  1275. locking on the actual number of failed attempts.  (Changing a password would
  1276. reset the count for that user ID to zero.) For example, the password could be
  1277. identified as expired after 100 failed login attempts, and the user ID locked
  1278. after 500.
  1279.  
  1280.                                                                  
  1281.                     27
  1282.  
  1283.  
  1284.                            APPENDIX F
  1285.  
  1286.             On the Probability of Guessing a Password
  1287.  
  1288.  
  1289. Appendix C discusses the techniques for finding a password length that will
  1290. resist exhaustive enumeration over the lifetime of the password with a given
  1291. probability.  This appendix derives the probability of guessing a password
  1292. during its lifetime.  As in Appendix C, we use the parameters:
  1293.  
  1294.   L = password lifetime
  1295.   R = guess rate
  1296.   S = size of the password space
  1297.   P = probability of guessing a password during its lifetime
  1298.  
  1299. The total number of guesses, (G), that can be made during a password's
  1300. lifetime is:
  1301.  
  1302.   G = R x L                                                      
  1303.                [1]
  1304.  
  1305. At this point, we need to consider the relation of the size of the password
  1306. space, 5, to G.  Clearly, if 5 is so small that one could try all possible
  1307. passwords before the lifetime of the password expires, the probability of
  1308. guessing the password is l.  As a result, we consider only cases where 5 is
  1309. greater than G.  The probability question then is, "For the case where 5 is
  1310. greater than G, what is the probability that in G guesses the password will be
  1311. guessed?" This is the same as asking the question, "What is the probability
  1312. that in the lifetime of the password, it will be guessed?" The probability
  1313. sought is:
  1314.  
  1315.        How many ways one can make G guesses (of S objects)
  1316.  
  1317. P =                 that include the password
  1318.  
  1319.        How many different ways one can make G guesses of S objects Note that
  1320. the probability that is appealed to is of the simplest form.  It is derived
  1321. from the definition of probability that the probability of an event is given
  1322. by the number of ways the event can happen divided by the number of ways an
  1323. event can happen or fail.  We first observe that the total number of ways one
  1324. can make G guesses of 5 things is given by sCg (the combinatorial notation
  1325. that means the number of combinations of "s" things taken "g" at a time).
  1326. (Lower case letters are used with the combinatorial notation in order to make
  1327. the expressions more readable.) This is determined by:
  1328.       s!
  1329.     g!(s-g)!
  1330. Thus, if 5 - A B C,D,E, one could make 3 guesses in 5C3 different
  1331. ways,
  1332. 5*4*3*2*1/3*2*1*2*1 10.
  1333.  
  1334.                     28
  1335.  
  1336.  
  1337. (Enumerating, they are ABC~ABD,ABE,ACD,ACE,ADE,BCD,BCE,BDE~C~~.) The problem
  1338. of finding the number of guesses of this total that include a specific
  1339. password, e.g., an "A", is addressed by considering a reduced set without the
  1340. specific password and asking how many ways one can make G guesses with the
  1341. reduced set.  Then, the total number of ways to make G guesses that include
  1342. the specified password is the difference between the two values.  This is
  1343. given by:
  1344.  
  1345.   sCg-(s-1)Cg                                                    
  1346.            [2]
  1347.  
  1348. That is, remove the designated password from the set 5, compute the number of
  1349. ways of making G guesses without the password, then consider the difference
  1350. between the two values.
  1351.  
  1352. If we ask in our example how many ways to make 3 guesses that do NOT include a
  1353. particular password from the set of 5 (say an "A"), this is given by:
  1354.  
  1355.   4C3  4*3*2*1/3*2*1*1 = 4
  1356.  
  1357. Enumerating for the specific case of an "A", they are BCD,BCE,BDE,CDE.
  1358.  
  1359. The number of ways to make 3 guesses that include the designated element is
  1360. 10-4 6.  Thus, the probability of guessing a designated password in 3 guesses
  1361. is 6/10 or 6.
  1362.  
  1363.  
  1364. Simplification:
  1365.  
  1366. It is indeed fortuitous that there is a theorem in any number of books on
  1367. Probability Theory that states:
  1368.  
  1369.  nCr  (n-1)C(r-1) + (n-1)Cr                                      
  1370.            [3]
  1371.  
  1372. This may also be expressed as:
  1373.  
  1374.  nCr- (n-1)Cr  (n-1)C(r-1)                                       
  1375.            [4]
  1376.  
  1377. Substituting s for n and g for r we obtain the expression:
  1378.  
  1379.  (s-1)C(g-1)                                                     
  1380.            [5]
  1381.  
  1382. for the number of ways of making G guesses that include a specific password.
  1383. Then, the probability that a given password will be guessed during the
  1384. lifetime of that password is given by:
  1385.  
  1386.   P    (s-1)C(g-1)                                               
  1387.            [6]
  1388.          sCg
  1389.                                                                
  1390.                     29
  1391.  
  1392.  
  1393. Evaluating this expression gives:
  1394.  
  1395.             (s-1)!             (s-1)!
  1396. P =  (g-1)!((s-1)-(g1))! =  (g-1)1(s-g)!   =  g!(s-1)!  = g
  1397.              s!                  s!           (g-1)!s!    s
  1398.           g!(s-g)!           g!(s-g)!
  1399.  
  1400. This derivation of the probability of guessing a password during
  1401. its lifetime, i.e.,
  1402.  
  1403. P = G                                                         [8]
  1404.  
  1405.  
  1406. is important in that it allows us to derive the size of the
  1407. password space
  1408.  
  1409.   S = G                                                       [9]
  1410.       P
  1411.  
  1412. given an acceptable probability of not guessing the password
  1413. during its lifetime.
  1414.                     30
  1415.                                                                  
  1416.  
  1417.  
  1418.  
  1419.                           REFERENCES
  1420.  
  1421.  
  1422.  
  1423. 1. Brown, R. L. Computer System Access Control Using Passwords,
  1424. 1985 , Aerospace Corporation, 16 January 1984.
  1425.  
  1426. 2. DoD Computer Security Center. Department of Defense Trusted
  1427. Computer System Evaluation Criteria, CSC-STD-00183, 15 August 1983.
  1428.  
  1429. 3.  DoD Directive 5200.28, Security Requirements for Automatic Data Processing
  1430. (ADP) Systems, revised April 1978.
  1431.  
  1432. 4.  Downey, P.  J.  Multics Security Evaluation: Password and File Encryption
  1433. Techniques, ESD-TR-74-193, Vol.  III, AD-A045279, AFSC Electronic Systems
  1434. Division, Hanscom AFB, Mass., June 1977.  
  1435.  
  1436. 5.  Executive Order 12356, National Security Information, 6 April 1982.  
  1437.  
  1438. 6.  Gasser, M.  A Random Word Generator for Pronounceable
  1439. Passwords, MTR-3006, ESD-TR-75-97, AD-A017676, MITRE Corp., Bedford,
  1440. Mass.,November 1975.  
  1441.  
  1442. 7.  Wood, H.M.  The Use of Passwords for Controlled Access to Computer
  1443. Resources, NBS Special Publication 500-9, U.S.  Department of Commerce,
  1444. National Bureau of Standards, May 1977.
  1445.  
  1446. 8. National Bureau of Standards. Federal Information Processing
  1447. Standards Publication 112, Password Usage Standard, 30 May 1985.
  1448.  
  1449. 9. National Bureau of Standards. Federal Information Processing
  1450. Standards Publication 46, Data Encryption Standards, 15 January 1977.
  1451.  
  1452. 10.  National Bureau of Standards.  Federal Information Processing Standards
  1453. Publication 81, DES Modes of Operation, 2 December 1980.
  1454.  
  1455.